入門 監視 ―モダンなモニタリングのためのデザインパターン
8.12 スケジュールジョブの監視
成功したらメールを送信したり、ログにメッセージを追加したりする仕組みにすることが多いので、失敗に気づけない
データが存在していなければアラートをを送る方法の1つが、データが存在していなかったところにデータを作成すること
code:bash
run-backup.sh 2 >&1 backup.log || echo “Job failed” > backup.log
スクリプトの標準エラー出力を標準出力にリダイレクトし、その両方をbackupl.ogに書き込む
Run-backup.shが完全に失敗すると、Job failedがbackup.logに書き込まれる
Job failedがログに記録されたら、ログ管理システムに送り、それに対してアラートを設定する
何らかの理由によって、データが存在しない状態を存在する状態に変えられない場合は、上記はうまく動作しない。
やりたいことは、データが存在していないことを検知すること。その場合は、デッドマン装置(dead man’s switch)を利用する
http://blog.mcglew.net/2012/09/dead-mans-switch-on-linux-part-1-basic.html
「何らかの仕組みがアクションを止めるように指示があるまではあるアクションを行う」という仕組み
code:bash
Run-backup.sh && touch deadman.bat
状態ファイルが一定の時間(例えば1時間)よりも古かったら、デッドマン装置が自動的に実行される
`See “cron job monitoring“`
Syslog転送 => TCPを進める
1. ほとんどの環境では「最後の言葉」はあまり有益ではない
2. メッセージが消えてしまうのは困る。
ログがsyslogで扱われていない場合
1. ログを出力するものすべての設定を変更して、ログをsyslogに送るようにする
2. Syslogの設定を変更して、ディスク上のファイルをsyslogに取り込む